﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;

namespace GUI
{
    public partial class FormTheCao : Form
    {
        //1: Thêm thẻ cào
        //2: cập thẻ cào
        public int status;
        public int maSanPham;
        public bool reset = false;

        public FormTheCao()
        {
            InitializeComponent();
        }

        private void comboboxMenhgia()
        {
            cmbMenhGia.Items.Add(50);
            cmbMenhGia.Items.Add(100);
            cmbMenhGia.Items.Add(200);
            cmbMenhGia.Items.Add(500);
            cmbMenhGia.SelectedIndex = 0;
        }

        private void comboboxTinhTrang(string tinhTrang)
        {
            cmbTinhTrang.Items.Add("Đang Bán");
            cmbTinhTrang.Items.Add("Đã Bán");

            if (tinhTrang.ToUpper().Equals("ĐANG BÁN"))
            {
                cmbTinhTrang.SelectedIndex = 0;
            }
            else
            {
                cmbTinhTrang.SelectedIndex = 1;
            }

        }

        private void comboboxNhaMang()
        {
            List<NhaMangDTO> listNhaMangDTO = NhaMangBUS.SeleclNhaMangAll();
            if (listNhaMangDTO != null)
            {
                cmbNhaMang.DataSource = listNhaMangDTO;
                cmbNhaMang.DisplayMember = "TenNhaMang";
                cmbNhaMang.ValueMember = "MaNhaMang";
                cmbNhaMang.SelectedItem = 0;
            }
        }
        private void FormTheCao_Load(object sender, EventArgs e)
        {
            //load mệnh giá
            comboboxMenhgia();
            //load nha mamg
            comboboxNhaMang();

            if (status == 1)
            {
                lbTinhTrang.Visible = false;
                cmbTinhTrang.Visible = false;

                btnThem.Location = new Point(btnThem.Location.X, btnThem.Location.Y - 25);
                btnHuy.Location = new Point(btnHuy.Location.X, btnHuy.Location.Y - 25);
            }
            else
            {
                btnThem.Text = "Cập nhật";
                TheCaoDTO theCao = TheCaoBUS.ThongTinTheCao(maSanPham);
                if (theCao != null)
                {
                    txtSoTheCao.Text = theCao.SoTheCao;
                    txtSoSeri.Text = theCao.SoSeri;
                    txtDonGia.Text = string.Format("{0:#,0.##}", theCao.DonGia);

                    NhaMangDTO nhaMang = new NhaMangDTO();
                    for (int i = 0; i < cmbNhaMang.Items.Count; i++)
                    {
                        nhaMang = (NhaMangDTO)cmbNhaMang.Items[i];
                        if (nhaMang.MaNhaMang == theCao.MaNhaMang)
                        {
                            cmbNhaMang.SelectedIndex = i;
                            break;
                        }
                    }

                    for (int i = 0; i < cmbMenhGia.Items.Count; i++)
                    {
                        if ((int)cmbMenhGia.Items[i] == theCao.MenhGia)
                        {
                            cmbMenhGia.SelectedIndex = i;
                            break;
                        }
                    }

                    comboboxTinhTrang(theCao.TinhTrang);
                }
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            string err = "";
            if (txtSoTheCao.Text.Length != 13)
            {
                err += "Số thẻ cào không hợp lệ\n";
            }

            if (txtSoSeri.Text.Length != 11)
            {
                err += "Số seri không hợp lệ\n";
            }

            if (txtDonGia.Text == "")
            {
                err += "Đơn giá không hợp lệ\n";
            }

            if (err != "")
            {
                MessageBox.Show(err, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                return;
            }

            TheCaoDTO thCaoDTO = new TheCaoDTO();
            thCaoDTO.SoTheCao = txtSoTheCao.Text;
            thCaoDTO.SoSeri = txtSoSeri.Text;
            thCaoDTO.DonGia = float.Parse(txtDonGia.Text);
            thCaoDTO.MaNhaMang = (int)cmbNhaMang.SelectedValue;
            thCaoDTO.MenhGia = (int)cmbMenhGia.SelectedItem;

            if (status == 1)
            {
                //theem the cao
                if (TheCaoBUS.ThemTheCao(thCaoDTO))
                {
                    MessageBox.Show("Thêm thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                    reset = true;
                    this.Dispose();
                }
                else
                {
                    MessageBox.Show("Thêm thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                }
            }
            else
            {
                //cap nhat  the cao
                thCaoDTO.MaSanPham = maSanPham;
                thCaoDTO.TinhTrang = cmbTinhTrang.Text;
                if (TheCaoBUS.CapNhatTheCao(thCaoDTO))
                {
                    MessageBox.Show("Cập nhật thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                    reset = true;
                    this.Dispose();
                }
                else
                {
                    MessageBox.Show("Cập nhật thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                }
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void FormTheCao_Resize(object sender, EventArgs e)
        {
            pnMain.Location = new Point((this.Width - pnMain.Width) / 2, pnMain.Location.Y);
        }

        private void txtSoTheCao_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtSoSeri_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtDonGia_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

       
    }
}
